Έχω ένα σύνολο δεδομένων όπως δίνεται παρακάτω όνομα col1 col2 10.3 10.9 β 11 15 γ 20 7.2 δ 6.2 6.2 ε 5.3 5.4 f 4.5 4.0 Θέλω να συγκρίνω τα col1 και col2 του df μου και θέλω να κάνω μια άλλη στήλη στην οποία, ενώ συγκρίνοντας τις τιμές col1 και col2, αν η τιμή του col2 αυξάνεται από το col1, τότε θέλω να εισαγάγω να αυξάνεται δίπλα τους στη στήλη μου εκεί και αν είναι μειώνοντας τότε θέλω να γράψω φθίνουσα και καμία αλλαγή εάν είναι ίδια και θέλω την έξοδο μου έτσι όνομα col1 col2 col3 αύξηση 10,3 10,9 β 11 15 αυξάνεται γ 20 7.2 μειώνεται d 6.2 6.2 καμία αλλαγή e 5.3 5.4 αυξάνεται f 4.5 4,0 μειώνεται
2021-01-31 08:15:00
Με dplyr: df%>% μετάλλαξη (Col3 = ifelse (col2 == col1, "καμία αλλαγή", ifelse (col2> col1, "αύξηση", "μείωση"))) Ή χρησιμοποιώντας case_when όπως προτείνεται από το @akrun: df%>% μετάλλαξη (Col3 = case_when (col1 == col2 ~ "no change", col2> col1 ~ "Αύξηση", ΑΛΗΘΕΙΑ ~ "φθίνουσα")) Αποτέλεσμα: όνομα col1 col2 Col3 1 a 10,3 10,9 αυξάνεται 2 b 11.0 15.0 αύξηση 3 γ 20,0 7,2 μειώνεται 4 d 6.2 6.2 καμία αλλαγή 5 e 5.3 5.4 αυξάνεται 6 f 4,5 4,0 μειώνεται Δεδομένα: df <-structure (λίστα (όνομα = c ("a", "b", "c", "d", "e", "f"), col1 = c (10.3, 11, 20, 6.2, 5.3, 4.5), col2 = c (10.9, 15, 7.2, 6.2, 5.4, 4) -6L)) | Μπορούμε να αφαιρέσουμε το col1 με το col2 και στη συνέχεια να χρησιμοποιήσουμε το σύμβολο για να εκχωρήσουμε τιμές df $ col3 <- c ("μείωση", "καμία αλλαγή", "αύξηση") [σύμβολο (df $ col1 - df $ col2) + 2] df # όνομα col1 col2 col3 # 1 a 10,3 10,9 μειώνεται # 2 β 11.0 15.0 μειώνεται # 3 γ 20.0 7.2 αύξηση # 4 d 6.2 6.2 καμία αλλαγή # 5 ε 5.3 5.4 μειώνεται # 6 f 4.5 4.0 αυξάνεται Ή χρησιμοποιώντας το dplyr μπορούμε να χρησιμοποιήσουμε το case_when βιβλιοθήκη (dplyr) df%>% μετάλλαξη (col3 = case_when (col1 == col2 ~ "no change", col1> col2 ~ "αυξάνεται", ΑΛΗΘΕΙΑ ~ "φθίνουσα")) | Βάση R df $ col3 <-with (df, ifelse (col1> col2, "φθίνουσα", ifelse (col1